Strona z tekstami

KODY ASCII, ANSI i UniCodeSystem.







Liczby - podstawowe pojêcie matematyki; powsta³o w ¶wiadomo¶ci cz³owieka na wiele tysiêcy lat p.n.e a nastêpnie rozwija³o i kszta³towa³o siê wraz z rozwojem cywilizacji. Liczby s³u¿± do oznaczania liczno¶ci zbiorów (np. przedmiotów).
Cyfry - umowne znaki s³u¿±ce do zapisywania liczb.

 

1. SYSTEMY LICZBOWE. BIT. BAJT

Dawno temu staro¿ytni rzymianie pos³ugiwali siê podczas zapisu liczb systemem, w którym wa¿na by³a kolejno¶æ wystêpowanie liter s³u¿±cych za cyfry lub miejsce umieszczenia.
Taki system nazywamy niepozycyjnym. Zapisana w nim liczba roku 1999 to MCMXCIX. Problem zapisu polega³ na braku cyfry oznaczaj±cej "nic" czyli zero. Zero nie wystêpuje w przyrodzie. Zosta³o wynalezione w V wieku n.e.
Od tej pory pos³ugujemy siê systemem pozycyjnym z cyframi arabskimi (Arabowie ich nie u¿ywaj±!), w którym o znaczeniu (wadze) cyfry w zapisie liczby ¶wiadczy jej pozycja.
Na codzieñ pos³ugujemy siê systemem dziesiêtnym (ile mamy palców u r±k?). Cyfry od 0 do 9 - bior±c od prawej oznaczaj± warto¶æ liczby reprezentowanej przez cyfrê pomno¿on± przez potêgê dziesi±tki pocz±wszy od zerowej. Suma wyników daje liczbê.

Rok 1999 zapisany w systemie dziesiêtnym:
1999 = 9*100 + 9*101 + 9*102 + 1*103
czyli: 1999 = 9*1 + 9*10 + 9*100 + 1*1000
czyli: 1999 = 9 + 90 + 900 + 1000

Komputer - w ogromnym uproszczeniu - rozpoznaje dwa stany: "jest" ("1") lub "nie ma" ("0").
Mówimy, ¿e komputer liczy w "systemie dwójkowym" - "binarnym". Cyfry 0 lub 1, bior±c od prawej, oznaczaj± warto¶æ liczby reprezentowanej przez cyfrê pomno¿on± przez potêgê dwójki pocz±wszy od zerowej. Suma wyników daje liczbê.

Zapis liczby 42 w systemie dwójkowym - zwanym "binarnym" to 101010:
101010 = 1*25 + 0*24 + 1*23 + 0*22 + 1*21 + 0*20
czyli: 101010 = 1*32 + 0*16 + 1*8 + 0*4 + 1*1 + 0*1
czyli: 101010 = 32 + 0 + 8 + 0 + 2 + 0

Zapis roku 2000 w postaci dwójkowej to 111 11010000.

W komunikacji z komputerem u¿ywany jest czêsto wygodniejszy system "szesnastkowy", w którym cyfry odpowiadaj±ce liczbom od 10 do 15 zast±piono literami od A do F.

BIT
- podstawowa jednostka informacji ("jest" / "nie ma") przyjmuj±ca warto¶ci "1" lub "0".
BAJT
- to 8 (osiem) bitów (np. 1001 0110) czyli liczba w systemie dwójkowym sk³adaj±ca siê z o¶miu zer lub jedynek w dowolnej kombinacji.
Odpowiednio wiêksze jednostki:
1 kB (kilobajt)  = 1 024 bajty,   1 MB (megabajt) = 1 048 576 bajtów, 1 GB (gigabajt) = .....

Najwiêksza liczba mo¿liwa do zapisania w postaci o¶miu zer lub jedynek - w jednym bajcie - to 1111 1111 co odpowiada w zapisie dziesiêtnym liczbie 255 (najmniejsza to 0000 0000 czyli dziesiêtne "zero"). Zapisanie wiêkszych liczb wymaga u¿ycia dwu bajtów (do 65 535). Zapis roku 2000 w postaci dwójkowej to w³a¶nie dwa bajty: 00000111 11010000. Pierwsze 5 zer nie jest znacz±ce.

Warto zwróciæ uwagê na pewne porównanie. Gdy do przekazu informacji u¿yjemy jednej litery lub g³oski (np. "o") - nie przeka¿emy praktycznie nic. Gdy u¿yjemy s³owa (z³o¿onego z kilku liter, np. "okno") nast±pi ogromny przyrost w przekazywanej informacji. U¿ycie dwu s³ów ("otwarte okno") daje kolejny ogromny skok - mo¿na nawet uznaæ j± ju¿ za "pe³n±".

2. KODY ASCII.

Jak spowodowaæ aby komputer potrafi±cy jedynie wykonywaæ operacje obliczeniowe na liczbach "zobaczy³" znak (cyfrê, literê i inne) wprowadzony z klawiatury?
Trzeba ka¿demu znakowi przyporz±dkowaæ liczbê.

Komputer na zapamiêtanie jednego znaku w pamiêci potrzebuje 1 bajtu. Oznacza to, ¿e mo¿e standardowo "zapisaæ" 255 znaków + 0.
Pierwsze komputery wiedzia³y tylko "0" i "1". Ludzie nie chcieli czytaæ cyfr i po jakim¶ czasie powsta³ pierwszy zestaw znaków. Nazywa³o siê to ASCII (127 kodów znaków). Oczywi¶cie, obecnie wszystkie komputery maj± zaimplementowane ASCII w sobie (przynajmniej te 127 znaków).

ASCII - (American Standard Code for Information Interchange) to standardowy sposób przypisania liczb do znaków pisarskich.
Standardowy kod ASCII obejmuje znaki o kodach od 0 do 127. Jest on jednakowy dla wszystkich komputerów niezale¿nie od kraju u¿ytkowania. Do zapisywania tej czê¶ci kodu ASCII u¿ywane by³o siedem bitów - czyli bajt z zerowym pierwszym bitem.

W komputerach stosowany jest te¿ tzw. "rozszerzony kod ASCII" obejmuj±cy znaki o kodach od 128 do 255. Zawarto¶æ tej czê¶ci mo¿e byæ ró¿na w ró¿nych komputerach, a nawet w tym samym komputerze w ró¿nych konfiguracjach (ustawieniach do pracy). W "czystej formie" znaki zawarte w tej czê¶ci wystêpuj± tylko w tzw. stronie kodowej CP 437 (amerykañskiej). Do zapisywania tej czê¶ci kodu ASCII u¿ywane jest osiem bitów, czyli pe³ny bajt.

Znaki kodu ASCII (ca³ego, tylko w oknie DOS) mo¿na uzyskaæ przez:
1. naci¶niêcie klawisza ALT i przytrzymanie go wci¶niêtego;
2. wystukanie na klawiaturze numerycznej kodu znaku; NumLock nie musi byæ w³±czony!
3. puszczenie klawisza ALT; dopiero teraz znak pojawia siê na ekranie.

Prawie wszystkie ksi±¿ki dotycz±ce DOS podaj± tablice przyporz±dkowañ liczb do znaków, czyli kody ASCII. W ksi±¿kach o Windows - takich tabel ju¿ nie ma. Przeciêtnemu windziarzowi nie s± one ju¿ potrzebne.

2.1 KODY ASCII OD 0 DO 31 - STERUJ¡ KOMPUTEREM.

Np. wprowadzenie kodu "13" daje to samo, co naci¶niêcie klawisza [Enter]; odpowiednio - "27" to kod klawisza [Esc]. Niektóre z tych kodów steruj± te¿ drukark± (wys³anie znaku "12" jako tekstu powoduje wysuw papieru do koñca strony). Kody te maj± znaczenie dla komputera i reprezentacjê graficzn± (to co widaæ na ekranie).

2.2 KODY ASCII OD 32 DO 127 - TO ZNAKI UZYSKIWANE Z KLAWIATURY.

Maj± reprezentacjê graficzn± i znaczenie dla komputera - takie jak znaki wprowadzone przez naci¶niêcie klawiszy.

2.3 KODY ASCII OD 128 DO 255 - ZNAKI NARODOWE, SEMIGRAFICZNE I INNE.

Maj± tylko reprezentacjê graficzn± - i s± bez znaczenie dla komputera. Ta czê¶æ kodów nosi nazwê "rozszerzonych". Przyk³ad kodów ASCII z zakresu rozszerzonego
Rozszerzony kod ASCII jest wykorzystywany:
  • do sterowanie drukarek;
  • do stosowania w DOS narodowych znaków;
  • do tworzenia na ekranie i w wydruku prymitywnej grafiki (patrz ni¿ej) w tym ramek tabel, zwanej "semigrafik±".
  • Przyk³ad grafiki kodów ASCII z zakresu rozszerzonego

    Fakt rozmieszczenia w jednym przedziale kodów do trzech ró¿nych zastosowañ owocowa³ kolizjami. Stare drukarki traktowa³y niektóre z kodów tego zakresu jako znaki steruj±ce krojem czcionki, przesuwem papieru. Podobnie - komenda DOS-u (do wersji 6.2x) tree mia³a opcjê /a aby unikn±æ wydruku niepe³nego tzn. potraktowania przez drukarkê semigrafiki ASCII jako kodów steruj±cych i zniekszta³cenia rysunku drzewa katalogów. Ponad to w programie zawieraj±cym "semigrafikê" z kodów ASCII (a by³ to np. ogromnie popularny Norton Commander) zamiast elementów tabelek mog± pojawiaæ siê "dziwne" znaki.

    3. STRONA KODOWA - (CODE PAGE).

    Po jakim¶ czasie od powstania ASCII powsta³ pierwszy zestaw znaków narodowych, bowiem ludzie w innych pañstwach te¿ chcieli mieæ w komputerach swój ca³y alfabet.

    Strona kodowa (oznaczana CP) to:

  • zestaw rozszerzonych znaków ASCII (kody od 128 do 255) zawieraj±cy znaki narodowe (np. polskie litery);
  • informacja o narodowym sposobie zapisu waluty, daty i czasu oraz separatorów dziesiêtnych i tysiêcznych;
  • klawiatura narodowa.
  • Istniej± ró¿ne strony kodowe umo¿liwiaj±ce uzyskanie w komputerze ró¿nych znaków narodowych.
    Gdy powsta³y kody ASCII, miêdzynarodowa organizacja normalizacyjna ISO by³a przewiduj±ca i posz³a dalej. Stworzy³a (w porozumieniu z zainteresowanymi) jeszcze wiêcej stron kodowych dla np. krajów Europy Wschodniej, Rosji (cyrylica), krajów Dalekiego Wschodu (Japonia, Korea). I te normy s± znane powszechnie pod nazw± ISO-8859-x, gdzie x jest cyfr± od 1 do 10. Europa Wschodnia, ³±cznie z Polsk± dosta³a numerek 2.
    Jeste¶my ZOBOWI¡ZANI stosowaæ w³a¶nie ISO-8859-2.

    W miêdzyczasie powsta³ Microsoft.
    Normy ISO ju¿ by³y ustanowione. W tym mniej wiêcej czasie Bill G. wypu¶ci³ na rynek produkt o nazwie "Microsoft Windows". Na pocz±tku wersja 2.0, potem 3.0, a wkrótce 3.1. No i w³a¶nie od wersji 3.1 wszystko siê zaczê³o, bo powsta³y wersje 3.1EE, 3.1PL i inne. Wszystkie te - nieangielskie - wersje zawiera³y znaki takie, jak norma ISO, tyle, ¿e te znaki by³y w innych miejscach. MS twierdzi³, ¿e skoro firma jest w Stanach, to podlega normie ANSI (p.dalej). Niestety, powinny podlegaæ normom ustanowionym przez te kraje.

    W Polsce "wspó³¿yj±" wiêc nastêpuj±ce strony kodowe i standardy polskich liter:

  • standard ustanowiony przez PN-93/T-42118 zgodn± z miêdzynarodow± norm± ISO 8859-2; zgodnie z prawem ten standard jest obowi±zuj±cy w Polsce!
  • popularna strona kodowa CP 852 (standard polskich znaków zawarty w niej okre¶lany jest nazw± Latin II) jest stosowana w MS-DOS; jej stosowanie zanika wraz z zanikiem DOSu;
  • równie popularna, z konieczno¶ci, strona kodowa - standard polskich liter - CP 1250 stosowana w Windows;
  • Inne standardy polskich liter to wci±¿ istniej±ca w DOS Mazovia i zapominane DHN, CSK, Microvex, Cyfromat.

    Wspó³czesne komputery pozwalaj± na instalacjê dowolnej strony kodowej przez uruchomienie programu - zainstalowanie strony kodowej.
    Instalacja strony kodowej nie oznacza konieczno¶ci wybrania narodowej klawiatury jako obowi±zkowej. Mo¿na zainstalowaæ polska stronê kodow± ale amerykañsk± (typow±) klawiaturê.
    Konieczne jest wtedy uruchomienie programu pozwalaj±cego uzyskaæ poprzez naci¶niêcie dodatkowego klawisza polskie znaki na amerykañskiej klawiaturze.
    Rozwi±zanie takie jest czêsto stosowane w Polsce poniewa¿:

  • polska klawiatura w DOS to klawiatura "maszynistki"; jest ona wygodna (?) dla osób przyzwyczajonych, ale do obs³ugi komputera raczej niedobra; ponad to znaki na klawiszach nie odpowiadaj± pokazywanym na ekranie a same klawiatury ("fizyczne") z polskimi znakami na klawiszach nie s± ju¿ produkowane;
  • polskie klawiatury dostêpne w WINDOWS to "maszynistki" (jak w maszynie do pisania) i "programisty", w której polskie litery uzyskuje siê trzymaj±c wci¶niêty klawisz [Alt]; wiele programów nie pozwala na takie wykorzystanie klawisza [Alt] traktuj±c jego wci¶niêcie razem z liter± jako rozkaz uruchomienia menu.
  • Instalacja polskiej strony kodowej w komputerze VGA oraz klawiatury narodowej lub amerykañskiej wymaga ustawienia w plikach konfiguracyjnych komputera.

    config.sys:     	
    COUNTRY=48,852,C:\DOS\COUNTRY.SYS
    
    
    autoexec.bat: C:\win95\MODE CON CP PREP=((852) C:\DOS\EGA.CPI) C:\win95\MODE CON CP SEL=852 C:\win95\KEYB us,,c:\dos\keyboard.sys

    Kody polskich liter maj± jeszcze jedno znaczenie: je¿eli dysponujemy edytorem formatuj±cym tekst (tj. Word-em, bo inne ju¿ zniknê³y z ekranów), to, aby przekazaæ nasz dokument do drukarni lub koledze maj±cemu inny porz±dny edytor, ale bez mo¿liwo¶ci konwersji naszego pliku - nakazujemy naszemu edytorowi zapisaæ dokument jako kody ASCII lub ANSI (w razie potrzeby umieszczamy informacjê o czcionce i grafice dla operatora drukarni). W ten sposób przenosi siê dokumenty miêdzy edytorami.

    Pliki w kodach ASCII lub ANSI s± tworzone i/lub odczytywane przez edytory nieformatuj±ce. Pliki te, to czyste kody ASCII "zak³ócone" jedynie polskimi literami.

    4. Kody ANSI.

    W Windows wystêpuje odmiana kodów ASCII zwana ANSI (Amerykañski Narodowy Instytut Standardów). Ró¿nice nie s± du¿e. Polegaj± na braku w zakresie rozszerzonym ANSI znaków semigraficznych i steruj±cych drukark± (w Windows zbêdne), oraz innym umieszczeniu znaków narodowych (obejrzenie w Notatniku z Windows tekstu w ASCII wyra¼nie to ukazuje).

    5. UNICODE (UCS-4).

    ASCII i ANSI nie wystarczaj±, gdy trzeba zapisaæ w rozszerzonym zakresie np. ponad 3000 chiñskich idiomów lub np. stworzyæ jedn± stronê kodow± dla ca³ej Europy. Unikod (ang. Unicode) jest nowoczesnym sposobem kodowania obejmuj±cym znaki u¿ywane na ca³ym ¶wiecie w tym wielu, je¿eli wrêcz nie wszystkich, krajów (np. polskie, hieroglify czy cyrylicê), symbole muzyczne, techniczne, wymowy i inne czêsto spotykane. W odró¿nieniu od dotychczas u¿ywanych sposobów, kod numeryczny jednoznacznie identyfikuje symbol. Nie ma sytuacji, ¿e dany kod mo¿e oznaczaæ ró¿ne symbole w zale¿no¶ci od numeru strony czy innego znacznika. Wynika z tego mo¿liwo¶æ swobodnego mieszania znaków ró¿nych krajów bez obawy o niejednoznaczno¶æ.

    Istotê Unikodu zgrabnie odzwierciedla okre¶lenie alfabet uniwersalny.

    Pe³ny Unikod jest standardem 32-bitowym (UCS-4). Bagatela: 4 294 967 295 znaków.
    Aktualnie u¿ywane jest jednak tylko 16 bitów (mo¿na przypisaæ liczby 65 535 znakom).

    Ze wzglêdu na to, i¿ nie wszystkie systemy komputerowe i programy zdolne s± do u¿ywania Unikodu w pe³nym zakresie oraz dla zapewnienia bezproblemowego transferu przesy³ania danych przy u¿yciu takich systemów komputerowych okre¶lono kilka sposobów kodowania:

  • UTF-7 - format 7-bitowy;
  • UTF-8 - format 8-bitowy;
  • UTF-16 - format 16-bitowy;
  • Specyfik± kodowañ UTF-7 i UTF-8 jest przesy³anie kodów ASCII praktycznie bez zmian. Tylko kody wiêksze ni¿ 127 podlegaj± modyfikacji. Dziêki temu polskie teksty powiêkszaj± swoj± objêto¶æ tylko o niewielki procent (kilka..kilkana¶cie) zamiast dwukrotnie lub czterokrotnie.

    Unikod jest obs³ugiwany przez dwa najczê¶ciej stosowane pakiety oprogramowania firm Netscape Communications oraz Microsoft. Konkretnie Internet Explorer (MS) oraz Netscape Communicator oba w wersjach 4.0 i wy¿szych. Obejmuje to obs³ugê poczty, grup dyskusyjnych, WWW (czytanie i edycja). Bo te¿ o Internet tu chodzi.

    6. INTERNET ORAZ E-MAIL A POLSKIE OGONKI.

    Kiedy Windows rozpowszechni³y siê w 90% komputerów na ¶wiecie, wtedy w Polsce - rozpowszechni³a siê CP 1250 i powoli zaczê³y znikaæ teksty pisane w ASCII. Wprawdzie Windows instaluje CP 852 w DOSie i, w oknie Trybu MS DOS-u oraz wierszu poleceñ, mamy na ekranie polskie znaki diakrytyczne oraz polsk± klawiaturê programisty, ale wiêkszo¶æ komputerowców ju¿ tego nie potrzebowa³a.

    Wydawa³o siê, ¿e narzucona przez B. Gatesa strona kodowa stanie siê (nieformalnym - przypominam) standardem.

    Jednak pojawi³ siê Internet. W nim za¶ stosuje siê ogonki wg ISO. A ¿e programy do tworzenia stron WWW s± z windy, mamy de facto dwa standardy ogonków na stronach. Stosowane s± wiêc programy konwertuj±ce tekst w jednym standardzie na drugi. Przegl±darki internetowe, takie jak NetscapeInternet Explorator, po znaczniku zawartym w kodzie strony, orientuj± siê jaki standard zastosowa³ autor i automatycznie pokazuj± ogonki prawid³owo. Z tym, ¿e Bill G. dalej bru¼dzi - MsIE konwertuje (podczas zapisu na dysk) strony w ISO do CP 1250.
    Jest to sytuacja paranoidalna. Podobnie jest w przypadku poczty e-mail.




     
      k_sidor[x]czuk[@]poczta.onet.pl do góry  

    Strona g³ówna | Historia PC | ENIAC - pierszy komputer | Szachy z komputerem
    General Motors o komputerach | Emotikony | Edytory | Horoskop druidów